function newInstance(Fn, ...args) {
  let obj = {};
  let result = Fn.call(obj, ...args);
    obj.__proto__ = Fn.protoType;

  return result instanceof Object ? result : obj;
}
